package org.soderiakelvy.model.services.testCase;

import static org.junit.Assert.*;

import java.util.List;

import junit.framework.Assert;

import org.junit.BeforeClass;
import org.junit.Test;
import org.soderiakelvy.model.domain.SujetoVO;
import org.soderiakelvy.model.domain.TipoProductoVO;
import org.soderiakelvy.model.service.ProductoServicio;
import org.soderiakelvy.model.service.SujetoServicio;
import org.soderiakelvy.model.service.imp.ProductoServicioImp;
import org.soderiakelvy.model.service.imp.SujetoServicioImpl;
import org.soderiakelvy.model.util.ConstantModel;

public class TestTipoProducto {
	//@BeforeClass

	
	@Test
	public void testTipoProductoCrud(){
		
		ProductoServicio ps = new ProductoServicioImp();
		TipoProductoVO tpVO = new TipoProductoVO();
		
		tpVO.setDescripcion("----");
		tpVO.setIva((double)20);
		tpVO.setNombre("testNombre");
		
		
		//----------- TEST  DE ALTA DE UN TIPO DE PRODUCTO POR SU ID ------------------
		Assert.assertEquals(ConstantModel.SUCCESS,ps.insertTipoProductoVO(tpVO));
		System.out.println("TEST ALTA OK");
		//-----------------------------------------------------------------------------
		
		//----------- TEST  DE UPDATE UN TIPO DE PRODUCTO -----------------------------
		tpVO.setDescripcion("testDescripcion");
		Assert.assertEquals(ConstantModel.SUCCESS,ps.updateTipoProductoVO(tpVO));
		System.out.println("TEST UPDATE OK");
		//-----------------------------------------------------------------------------
		
		//----------- TEST  DE OBTENER UN TIPO DE PRODUCTO POR SU ID ------------------
		Assert.assertEquals("TESTNOMBRE", ps.getTipoProductoById(3).getNombre());
		System.out.println("TEST OBTENER UN TIPO DE PRODUCTO OK");
		//-----------------------------------------------------------------------------
		
		//----------- TEST  DE ELIMINACION UN TIPO DE PRODUCTO ------------------------
		Assert.assertEquals(ConstantModel.SUCCESS,ps.deleteTipoProductoVO(tpVO));
		System.out.println("TEST ELIMINAR OK");
		//-----------------------------------------------------------------------------

		//----------- TEST  DE GETALL TIPO DE PRODUCTO ------------------------
		List<TipoProductoVO>tipos = ps.getTiposDeProductos();
		Assert.assertEquals(tipos.size(), 2);
		for(TipoProductoVO tp1 : tipos){
			System.out.println(tp1.getNombre());
		}
		
		System.out.println("TEST GETALL OK");
		//-----------------------------------------------------------------------------
	}

}
